/**
 *====================================================
 * 文件名称: NewsActionApi.java
 * 修订记录：
 * No    日期				作者(操作:具体内容)
 * 1.    2015年9月21日			chenxy(创建:创建文件)
 *====================================================
 * 类描述：(说明未实现或其它不应生成javadoc的内容)
 */
package com.yuexunit.finance.news.action.v1;

import com.yuexunit.finance.context.FinVersion1;
import com.yuexunit.finance.news.action.v1.model.NewsDetail;
import com.yuexunit.finance.news.action.v1.model.NewsSummary;
import com.yuexunit.page.PageCriteria;
import com.yuexunit.page.PageList;
import com.yuexunit.web.annotation.Action;
import com.yuexunit.web.annotation.Parameter;
import com.yuexunit.web.annotation.Permission;

/** 
 * @ClassName: NewsActionApi 
 * @Description: TODO(这里用一句话描述这个类的作用) 
 * @author chenxy 
 * @date 2015年9月21日 下午7:30:05  
 */
public interface NewsActionApi {

	@Action(version=FinVersion1.class,description="新增资讯信息")
	@Parameter(name="newsId", description="资讯ID")
	@Permission
	public String createNews (
				@Parameter(name = "newsCategoryId", description = "栏目ID") Long newsCategoryId,
				@Parameter(name = "newsTitle", description = "资讯标题") String newsTitle,
				@Parameter(name = "summary", description = "资讯摘要") String summary,
				@Parameter(name = "recommend", description = "是否推荐 1:推荐") String recommend,
				@Parameter(name = "imageUuid", description = "资讯列表缩略图", nullable = true) String imageUuid,
				@Parameter(name = "newsSource", description = "资讯来源", nullable = true) String newsSource,
				@Parameter(name = "newsSourceLink", description = "原文链接", nullable = true) String newsSourceLink,
				@Parameter(name = "content", description = "资讯明细-内容", nullable = true) String[] content,
				@Parameter(name = "fileUuid", description = "资讯明细-图片", nullable = true) String[] fileUuid
		);
	
	@Action(version=FinVersion1.class,description="更新资讯信息")
	@Permission
	public void updateNews(
			@Parameter(name = "newsId", description = "资讯ID") Long newsId,
			@Parameter(name = "newsCategoryId", description = "栏目ID") Long newsCategoryId,
			@Parameter(name = "newsTitle", description = "资讯标题") String newsTitle,
			@Parameter(name = "summary", description = "资讯摘要") String summary,
			@Parameter(name = "recommend", description = "是否推荐 推荐1") String recommend,
			@Parameter(name = "imageUuid", description = "资讯列表缩略图", nullable = true) String imageUuid,
			@Parameter(name = "newsSource", description = "资讯来源", nullable = true) String newsSource,
			@Parameter(name = "newsSourceLink", description = "原文链接", nullable = true) String newsSourceLink,
			@Parameter(name = "newsContentId", description = "资讯明细-ID", nullable = true) String[] newsContentId,
			@Parameter(name = "content", description = "资讯明细-内容", nullable = true) String[] content,
			@Parameter(name = "fileUuid", description = "资讯明细-图片", nullable = true) String[] fileUuid
	);
	@Action(version=FinVersion1.class,description="删除资讯信息")
	@Permission
	public void disableNews(
			@Parameter(name = "newsId", description = "资讯ID") Long newsId
	);
	
	@Action(version=FinVersion1.class,description="推荐资讯信息")
	@Permission
	public void recommendNews(
			@Parameter(name = "newsId", description = "资讯ID") Long newsId
	);
	
	@Action(version=FinVersion1.class,description="取消推荐资讯信息")
	@Permission
	public void disableRecommendNews(
			@Parameter(name = "newsId", description = "资讯ID") Long newsId
	);

	@Action(version=FinVersion1.class,description="资讯明细")
	public NewsDetail inquireNewsDetail(
			@Parameter(name = "newsId", description = "资讯ID") Long newsId
	);

	@Action(version=FinVersion1.class,description="资讯信息列表")
	public PageList<NewsSummary> inquireNewsPageList(
			@Parameter(name = "newsCategoryId", description = "栏目ID", nullable = true) Long newsCategoryId,
			@Parameter(name = "recommend", description = "推荐 1:推荐", nullable = true) Integer recommend,
			@Parameter(name = "newsTitle", description = "标题", nullable = true) String newsTitle,
			@Parameter(name = "publisher", description = "发布人", nullable = true) String publisher,
			@Parameter(name = "issueDateFromTime", description = "发布开始时间", nullable = true) String issueDateFromTime,
			@Parameter(name = "issueDateToTime", description = "发布结束时间", nullable = true) String issueDateToTime,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Action(version=FinVersion1.class,description="帮助信息列表")
	public PageList<NewsSummary> inquireHelpPageList(
			@Parameter(name = "content", description = "搜索内容(含标题摘要)", nullable = true) String content,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version=FinVersion1.class,description="资讯信息维护列表")
	public PageList<NewsSummary> inquireAllNewsPageList(
			@Parameter(name = "newsCategoryId", description = "栏目ID", nullable = true) Long newsCategoryId,
			@Parameter(name = "recommend", description = "推荐 1:推荐", nullable = true) Integer recommend,
			@Parameter(name = "newsTitle", description = "标题", nullable = true) String newsTitle,
			@Parameter(name = "publisher", description = "发布人", nullable = true) String publisher,
			@Parameter(name = "issueDateFromTime", description = "发布开始时间", nullable = true) String issueDateFromTime,
			@Parameter(name = "issueDateToTime", description = "发布结束时间", nullable = true) String issueDateToTime,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
}
